home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 6: Level 6 / 17 Bit - Level 6 (1998)(Epic Marketing)[!].iso / quartz / q0429.dms / q0429.adf / libray / libobj / blob.h < prev    next >
C/C++ Source or Header  |  1991-08-08  |  2KB  |  70 lines

  1. /*
  2.  * blob.h
  3.  *
  4.  * Copyright (C) 1990, 1991, Mark Polipec, Craig E. Kolb
  5.  * All rights reserved.
  6.  *
  7.  * This software may be freely copied, modified, and redistributed
  8.  * provided that this copyright notice is preserved on all copies.
  9.  *
  10.  * You may not distribute this software, in whole or in part, as part of
  11.  * any commercial product without the express consent of the authors.
  12.  *
  13.  * There is no warranty or other guarantee of fitness of this software
  14.  * for any purpose.  It is provided solely "as is".
  15.  *
  16.  * $Id: blob.h,v 4.0 91/07/17 14:36:12 kolb Exp Locker: kolb $
  17.  *
  18.  * $Log:    blob.h,v $
  19.  * Revision 4.0  91/07/17  14:36:12  kolb
  20.  * Initial version.
  21.  * 
  22.  */
  23. #ifndef BLOB_H
  24. #define BLOB_H
  25.  
  26. #define GeomBlobCreate(t,m,n) GeomCreate((GeomRef)BlobCreate(t,m,n), BlobMethods())
  27.  
  28. #define R_START 1
  29. #define R_END   0
  30.  
  31. /*
  32.  * Blob
  33.  */
  34. typedef struct {
  35.     Float rs;    /* radius */
  36.     Float c4;    /* coeefficient */
  37.     Float c2;    /* coeefficient */
  38.     Float c0;    /* coeefficient */
  39.     Float x;    /* x position */
  40.     Float y;    /* y position */
  41.     Float z;    /* z position */
  42. } MetaVector;
  43.  
  44. typedef struct {
  45.     int type,pnt;
  46.     Float bound;
  47.     Float c[5];
  48. } MetaInt;
  49.  
  50. typedef struct {
  51.     Float T;        /* Threshold   */
  52.         int num;        /* number of points */
  53.         MetaVector *list;    /* list of points */
  54.     MetaInt *ilist, **iarr;
  55.         
  56. } Blob;
  57.  
  58. typedef struct MetaList {
  59.     MetaVector mvec;
  60.     struct MetaList *next;
  61. } MetaList;
  62.  
  63. extern int    BlobIntersect(), BlobNormal();
  64. extern void    BlobBounds(), BlobStats();
  65. extern Blob    *BlobCreate();
  66. extern char    *BlobName();
  67. extern Methods    *BlobMethods();
  68.  
  69. #endif /* BLOB_H */
  70.